\documentclass[11pt]{article}

\usepackage[letterpaper,margin=0.75in]{geometry}
\usepackage{graphicx}
\usepackage{listings}
\usepackage{subfigure}

\begin{document}

\title{Lab \#6 Report}

\author{Dave Hackett, Artan Ismaili, David Wiggins}

\date{March 18, 2009}

\maketitle

\section{Introduction}

%Your introduction should give an overview of your application.
%Explain what are you building, summarizing what it will do.
We are building an application called Whiteboard with properties
similar to Blackboard.  Whiteboard provides a way for a professor to
post announcements, grades, a schedule, and other similar items for a
single class.  The professor acts as the administrator and has all
privileges to modify content on Whiteboard.  Students in the course may
login and have access to view their grades as well as course documents.
Students can send emails to the professor or
other students in the class and submit class ratings to their professor.

\section{Use Cases}

%Design several use cases for your application. A use case describes
%the functionality you want your application to have, in terms of how a
%user might use the program. For example, one use case might be
%creating an account on the site. Describe what the user wants to do
%and the data required to support this service. Then describe the
%actions the user will take to accomplish this function.  Refer to
%your user interface design as you describe the use cases.


\subsection{Create student account}

Tables referenced: Users

\begin{enumerate}
\item navigate to the website where whiteboard is setup
\item enter valid name under create account on the login page (name is not already taken by another account)
\item enter valid password under create account on the login page (password is not empty)
\item enter valid email under create account on the login page (email has correct format)
\item click create account
\item if all information is valid, user is directed to the home page
\end{enumerate} 


\subsection{Student logs in}

Tables referenced: Users

\begin{enumerate}
\item already have successfully created a user account
\item enter your username under login
\item enter your password under login
\item click login
\item if all information is valid, user is directed to the home page
\end{enumerate} 


\subsection{Instructor Posts announcement}

Tables referenced: announcements, course.instructor

\begin{enumerate}
\item instructor successfully logs in to the website with his account
\item enter an announcement in the text field for a new announcement
\item click add
\item page is refreshed with the new announcement added to the list of displayed announcements
\item today's date is appended to the announcement content
\item student users who log in to the site see the new announcement listed on their home page.
\end{enumerate} 


\subsection{Student user navigates to the syllabus page when an instructor hasn't uploaded a syllabus}

Tables referenced: course

\begin{enumerate}
\item student logs in to the website and navigates to the syllabus page
\item a default pdf that comes with the site content saying that the instructor has yet to upload a syllabus is displayed
\end{enumerate} 


\subsection{Student user navigates to the schedule page when an instructor hasn't uploaded a schedule}

Tables referenced: course

\begin{enumerate}
\item student logs in to the website and navigates to the schedule page
\item a default pdf that comes with the site content saying that the instructor has yet to upload a schedule is displayed
\end{enumerate} 


\subsection{Student sends an email to another student}

Tables refereneced:

\begin{enumerate}
\item Student logs in to Whiteboard
\item Student clicks on Communication
\item Student goes to the drop down menu and selects the student to send the email to
\item Student goes to the subject line text field and enters the subject of the email
\item Student goes to text field and enters the body of the email
\item Student clicks on Send
\item An email is sent to the selected Student
\end{enumerate}


\subsection{Student changes student password}

Tables refereneced: User

\begin{enumerate}
\item Student logs in to Whiteboard
\item Student clicks on Account Settings
\item Student goes to password field and enters new password
\item Student clicks on save
\item Student's password is changed
\end{enumerate}


\subsection{Instructor creates an assignment}

Tables referenced: Assignment

\begin{enumerate}
\item Professor logs in to Whiteboard website
\item On the professor's Dashboard goes to Add Assignment
\item Professor inputs a name and points possible for the assignment then clicks Add
\item A new assignment was added to the list of assignments for the course
\end{enumerate}


\subsection{Instructor enters a grade for an assignment}

Tables referenced: Assignment, Course, Person, and Gradebook

\begin{enumerate}
\item Professor logs in to Whiteboard website
\item On the professor's Dashboard goes to Accounts and Grades
\item Professor finds the correct student row and correct assignment column
\item Professor inputs score then clicks on save
\item The grade is saved in the grade book
\end{enumerate}


\section{Interface Design}

Views of all the pages in our design are shown in Figures ~\ref{fig0} through ~\ref{fig10}.
The header and footer images are shown as separate images but should appear at the top and bottom of each of the views.

Navigation is managed with the menu shown in the header.  Once a student has logged in to the system they can navigate to anywhere except the dashboard.  
When and instructor logs in to the system they see only the dashboard.  
On logout instructors and students are sent to the login page. 

Data Managed in each page:
\begin{itemize}
\item Home - Figure~\ref{fig0} - access of course announcements
\item Header and Footer - Figure~\ref{fig1} - none
\item Login Page - Figure~\ref{fig2} - user account creation, session login, password fetch 
\item Account Settings - Figure~\ref{fig3} - access and modification of user account settings
\item Communications Page - Figure~\ref{fig4} - access of user emails to send message  
\item Dashboard Page - Figure~\ref{fig5} - unlimited upload, access, and modification of all system data by the instructor
\item Grades Page - Figure~\ref{fig6} - view of user's grades
\item Materials Page - Figure~\ref{fig7} - access of materials docs
\item Ratings Page - Figure~\ref{fig8} - access of instructor's email to send ratings
\item Schedule Page - Figure~\ref{fig9} - access of schedule document
\item Syllabus Page - Figure~\ref{fig10} - access of syllabus document 
\end{itemize}



\newpage
\section{Database Design}
%Draw an entity-relationship diagram that includes all entities,
%attributes, and relationships. Use a computer program to draw this
%diagram, such as dia. Then, write a Rails migration that will create
%the MySQL database for you program. Note, this migration doesn't need
%to be part of an actual application -- just show what the migration
%should be, based on your database design.
The following figures show the database tables with their attributes,
attribute types, and constraints. The primary key attributes for a 
table are shown in bold font as Not NULL PK, and foreign key attributes
are shown as Not NULL FK. The table constraints shown in these migrations
are the compound primary keys (or a single primary key, where appropriate), 
from two or more different associations with other tables. 


\begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/course.eps}
    \caption{Course table migration}
    \label{fig50}
  \end{figure}

\begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/person.eps}
    \caption{Person table migration}
    \label{fig51}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/user.eps}
    \caption{User table migration}
    \label{fig52}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/gradebook.eps}
    \caption{Gradebook table migration}
    \label{fig54}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/assignment.eps}
    \caption{Assignment table migration}
    \label{fig55}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/coursematerial.eps}
    \caption{Course\_Material table migration}
    \label{fig56}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/announcement.eps}
    \caption{Announcement table migration}
    \label{fig57}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/major.eps}
    \caption{Major table migration}
    \label{fig58}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/contact.eps}
    \caption{Contact table migration}
    \label{fig59}
  \end{figure}
  
    \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/classstanding.eps}
    \caption{Class\_Standing table migration}
    \label{fig60}
  \end{figure}
  
  \begin{figure}
\centering
    \includegraphics[width=10cm]{migrationss/role.eps}
    \caption{Role table migration}
    \label{fig61}
  \end{figure}
  
\newpage
\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/home.eps}
    \caption{Home Page}
    \label{fig0}
  \end{figure}
  

  \begin{figure}
    \centering
    \subfigure[Header]{
      \includegraphics[width=15cm]{mockup/header.eps}
      \label{sub1}
    }
    \subfigure[Footer]{
      \includegraphics[width=15cm]{mockup/footer.eps}
      \label{sub2}
    }
    \caption{Header and Footer images}
    \label{fig1}
  \end{figure}


  \begin{figure}
  \centering
    \includegraphics[width=15cm]{mockup/login.eps}
    \caption{Login Page}
    \label{fig2}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/account.eps}
    \caption{Account Settings Page}
    \label{fig3}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/communications.eps}
    \caption{Communications Page}
    \label{fig4}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/dashboard.eps}
    \caption{Dashboard Page}
    \label{fig5}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/grades.eps}
    \caption{Grades Page}
    \label{fig6}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/materials.eps}
    \caption{Materials Page}
    \label{fig7}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/rateings.eps}
    \caption{Ratings Page}
    \label{fig8}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/schedule.eps}
    \caption{Schedule Page}
    \label{fig9}
  \end{figure}


\begin{figure}
\centering
    \includegraphics[width=15cm]{mockup/syllabus.eps}
    \caption{Syllabus Page}
    \label{fig10}
  \end{figure}



\end{document}
